有脚本检测gnome会话

您所在的位置:网站首页 shell 获取变量 有脚本检测gnome会话

有脚本检测gnome会话

2023-03-04 07:01| 来源: 网络整理| 查看: 265

我有一个makeself脚本,我期望以root身份运行;这是一个桌面安装程序。有脚本检测gnome会话

在脚本结尾处,最近安装到文件系统的软件尝试在用户空间中启动。

这种运作良好,使用sudo -u $(logname) /path/to/application(或交替sudo -u $SUDO_USER ... in Ubuntu 16.04),然而从用户的关键环境变量缺失:

GNOME_DESKTOP_SESSION_ID

我需要GNOME_DESKTOP_SESSION_ID因为孩子的过程属于Java和Java使用这个环境变量检测GtkLookAndFeel。

但尝试使用sudo -i失败。

从一些基本的测试,该GNOME_DESKTOP_SESSION_ID不会出现是一个自然的环境变量时在该用户的日志。例如,如果我CTRL+ALT+F1给终端,env |grep GNOME产生什么而XTerm和gnome-terminal都得到GNOME_DESKTOP_SESSION_ID。

如何在安装程序脚本中保留此GNOME_DESKTOP_SESSION_ID变量而无需用户将诸如-E参数之类的内容传递给sudo命令?请注意,尽管GtkLookAndFeel是Linux的主要外观,但我更愿意不对export JAVA_OPTS进行硬编码,但我更愿意继续回退到Oracle的检测技术以获得支持,延长寿命和可扩展性的原因。

更新:在Ubuntu中,GNOME_DESKTOP_SESSION_ID生活/usr/share/upstart/sessions/xsession-init.conf

initctl set-env --global GNOME_DESKTOP_SESSION_ID=this-is-deprecated

导致使用initctl get-env进行检索。不幸的是,这在新的sudo shell中没有帮助,也没有任何(乐观)尝试在​​。

来源

2016-11-15 tresf



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3